package com.mz361.stdapi.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mz361.common.enums.StatusEnum;
import com.mz361.common.utils.StatusUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.Where;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.*;

/**
 * 标准计划数据实体类
 *
 * @author niceale
 * @date 2024/04/30
 */
@Data
@Entity
@Table(name = "std_standardPlan")
@EntityListeners(AuditingEntityListener.class)
@Where(clause = StatusUtil.NOT_DELETE)
//@Document(indexName = "standard_plan", shards = 1, replicas = 0)
public class StandardPlan {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @JsonIgnore
    private Long id;
    //    计划号
    @ApiModelProperty(notes = "计划号")
    private String standardPlanNo;
    //    项目名称
    @ApiModelProperty(notes = "项目名称")
    private String title;
    @ApiModelProperty(notes = "项目英文名称")
    private String enTitle;
    //制修订
    @ApiModelProperty(notes = "制修订")
    private String standardization;

    @ApiModelProperty(notes = "标准性质")
    private String standardProperty;
    //计划下达日期
    @ApiModelProperty(notes = "计划下达日期")
    private String scheduledDate;
    //介绍
    @ApiModelProperty(notes = "介绍")
    private String introduction;
    //    项目周期
    @ApiModelProperty(notes = "项目周期")
    private String cycle;
    //    标准类型
    @ApiModelProperty(notes = "标准类型")
    private String standardType;
    // 国际标准分类号
    @ApiModelProperty(notes = "国际标准分类号")
    private String ICS;
    // 中国标准分类号
    @ApiModelProperty(notes = "中国标准分类号")
    private String CCS;
    //起草部门
    @ApiModelProperty(notes = "起草部门")
    private String draftsDept;
    //起草单位
    @ApiModelProperty(notes = "起草单位")
    private String draftsUnit;
    //项目进度
    @ApiModelProperty(notes = "项目进度")
    private String progress;
    //技术委员会
    @ApiModelProperty(notes = "技术委员会")
    private String techCommittee;

    @ApiModelProperty(notes = "采标情况")
    private String bidSituation;
    // 数据状态
    @JsonIgnore
    private Byte status = StatusEnum.OK.getCode();
}
